from socket import *
from threading import Thread

def recv_data():
    while True:
        recv_data = s.recvfrom(1024)
        print('接收到的数据:', recv_data[0].decode('utf-8'))  # 输出接收到的数据
        print('发送方地址:', recv_data[1])  # 输出发送方的地址
        if recv_data[0].decode('utf-8') == '88':
            break

def send_data():
    while True:
        data = input("请输入要发送的数据: ")
        addr = ('127.0.0.1',8888)
        s.sendto(data.encode('utf-8'), addr)  # 发送数据到服务器
        if data == '88':
            break

if __name__ == '__main__':
    s = socket(AF_INET, SOCK_DGRAM)  # 创建UDP套接字
    s.bind(('127.0.0.1', 9999))  # 绑定地址和端口号
    t1 = Thread(target=recv_data)  # 创建接收数据的线程
    t2 = Thread(target=send_data)  # 创建发送数据的线程
    t1.start()  # 启动接收数据的线程
    t2.start()  # 启动发送数据的线程
    t1.join()  # 等待接收数据的线程结束
    t2.join()  # 等待发送数据的线程结束